package com.znsd.zl.house.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.znsd.zl.house.entity.HouseImage;
import com.znsd.zl.house.entity.RentEntity;
import com.znsd.zl.house.entity.vo.RentRespVO;
import com.znsd.zl.utils.PageUtils;

import java.util.List;
import java.util.Map;

/**
 * @ClassName IRentService
 * @Description 描述
 * @author zhubin
 * @date 2020-08-21 10:49:33
 * @Version v1.0
 */
public interface IRentService extends IService<RentEntity> {

    /**
     * 条件查询分页
     * @param params 查询数据
     * @param house 范围条件查询
     * @return  查询到的行数
     */
    PageUtils conditionQueryPage( Map<String,Object> params, RentRespVO house);

    /**
     * 条件查询全部
     * @param params 查询数据
     * @param house 范围条件查询
     * @return  查询到的行数
     */
    PageUtils conditionQueryAll( Map<String,Object> params, RentRespVO house);

    /**
     * 条件查询获取所有总数
     * @param params 查询数据
     * @param house 范围条件查询
     * @return  查询到的行数
     */
    Integer conditionQueryTotal( Map<String,Object> params, RentRespVO house);

    /**
     *  租房信息推送
     * @param districtName  区域名称
     * @param startNum  获取开始数
     * @param size      获取多少条数据
     * @return
     */
    PageUtils push(String districtName, Integer startNum, Integer size);

    /**
     * 根据房屋id查询图片
     * @param houseId 房屋id
     * @return  返回所有图片
     */
    List<String> findHouseImage(Integer houseId);

    /**
     * 获取房屋的总盈利和出租次数
     * @param rentId：要获取的房源出租ID
     * @return map ：封装了总利润和出租次数
     */
    Map findHouseProfit(Integer rentId);

    /**
     * 根据房屋id查询图片
     * @param houseId 房屋id
     * @return  返回所有图片对象
     */
    List<HouseImage> findHouseImages(Integer houseId);

    /**
     * 根据图片id删除图片信息
     * @param imageId  图片编号
     */
    void deleteHouseImage(Integer imageId);

    /**
     * 根据用户Id查询用户的租房信息
     * @param userId
     * @return
     */
    List<RentEntity> findUserHouse(Integer userId);

}
